// Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.

#include "StdAfx.h"
#include <CryRenderer/RenderElements/CREWaterOcean.h>
#include <Cry3DEngine/I3DEngine.h>

CREWaterOcean::CREWaterOcean() : CRendElementBase()
{
	mfSetType(eDATA_WaterOcean);
	mfUpdateFlags(FCEF_TRANSFORM);

	m_nVerticesCount = 0;
	m_nIndicesCount = 0;

	m_pVertDecl = 0;
	m_pVertices = 0;
	m_pIndices = 0;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////

CREWaterOcean::~CREWaterOcean()
{
	ReleaseOcean();
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////

void CREWaterOcean::mfGetPlane(Plane& pl)
{
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////

void CREWaterOcean::mfPrepare(bool bCheckOverflow)
{
	if (bCheckOverflow)
		gRenDev->FX_CheckOverflow(0, 0, this);
	gRenDev->m_RP.m_pRE = this;
	gRenDev->m_RP.m_RendNumIndices = 0;
	gRenDev->m_RP.m_RendNumVerts = 0;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////

Vec3 CREWaterOcean::GetPositionAt(float x, float y) const
{
	//assert( m_pWaterSim );
	if (WaterSimMgr())
		return WaterSimMgr()->GetPositionAt((int)x, (int)y);

	return Vec3(0, 0, 0);
}

Vec4* CREWaterOcean::GetDisplaceGrid() const
{
	//assert( m_pWaterSim );
	if (WaterSimMgr())
		return WaterSimMgr()->GetDisplaceGrid();

	return 0;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////

void CREWaterOcean::UpdateFFT()
{

}

/////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////
